/**

 @Name：layuiAdmin 用户管理 管理员管理 角色管理
 @Author：star1029
 @Site：http://www.layui.com/admin/
 @License：LPPL
    
 */


layui.define(['table', 'form','transfer','tree'], function(exports) {
    var $ = layui.$,
        admin = layui.admin,
        view = layui.view,
        table = layui.table,
        form = layui.form;
        transfer = layui.transfer;
        tree = layui.tree;
    //用户管理
    table.render({
        elem: '#LAY-user-manage',
        url: '/users/findAll' //模拟接口 
        ,method:'post' //请求方法post    
        /* ,where:{token: "67b159fe-7cb1-4b60-b9c6-e042ed878496",} */,
        cols: [
            [
                  { type: 'checkbox', fixed: 'left' }, 
                  { field: 'id', width: 100, title: 'ID'},
                  { field: 'loginName', title: '用户名' }, 
                  { field: 'passWord', title: '密码' }, 
                  { field: '', title: '是否锁定',templet:function(d){
                    if(d.isLockout=="是"){
                        return '<input type="checkbox" param="'+d.loginName+'" lay-filter="onLocKout" name="isLockout" lay-skin="switch" checked  lay-text="是|否">';
                    }else{
                        return '<input type="checkbox" param="'+d.loginName+'" lay-filter="onLocKout" name="isLockout" lay-skin="switch"   lay-text="是|否">';
                    }
                    /*   return '<input type="checkbox" param="'+d.LoginName+'" lay-filter="onLocKout" name="IsLockout" lay-skin="switch"   lay-text="是|否">' */
                      /*  if(d.IsLockout=="是"){  
                          return '<input type="checkbox" param="'+d.LoginName+'" lay-filter="onLocKout" name="IsLockout" lay-skin="switch"   lay-text="是|否">'
                         }else{
                          return '<input type="checkbox" param="'+d.LoginName+'" lay-filter="unLockout" name="IsLockout" lay-skin="switch"   lay-text="是|否">'
                      }   */
                  } }, 
                  { field: 'createTime', title: '创建时间' },
                  { field: 'lastLoginTime', title: '最后登录时间' },
                  { field: 'lockTime', title: '用户锁定时间' }, 
                  { field: 'proTectEmail', title: '邮箱' }, 
                  { field: 'protectMtel', title: '手机号码' }, 
                  { field: 'psdWodrong', title: '密码错误次数' }, 
                  { field: 'roleId', title: '角色' }, 
                  
                  { title: '操作', width: 250, align: 'center', fixed: 'right', toolbar: '#table-useradmin-webuser' }
            ]
        ],
        page: true,
        limit: 30,
        height: 'full-320',
        text: '对不起，加载出现异常！'
    });

    form.on('switch(onLocKout)', function(data){
        console.log(data.elem); //得到checkbox原始DOM对象
        console.log(data.elem.checked); //开关是否开启，true或者false
        console.log(data.value); //开关value值，也可以通过data.elem.value得到
        console.log(data.othis); //得到美化后的DOM对象

       // if(data.elem.checked==true){
        $.post(
            "/users/Islockon",
            {
                LoginName:$(data.elem).attr("param"),
                IsLockout:data.elem.checked?"是":"否",//获取数据
                //token: '67b159fe-7cb1-4b60-b9c6-e042ed878496'
            },function(res){
                
                    layer.msg("操作成功");
              
            },'json'
          );//}else{
           /*  $.post(
                "/users/Islockon/{un}/{IsLockout}",
                {
                    un:$(data.elem).attr("param"),
                    IsLockout:data.elem.checked?"是":"否",//获取数据
                    token: '67b159fe-7cb1-4b60-b9c6-e042ed878496'
                },function(res){
                    
                        layer.msg("操作成功");
                    
                },'json'
              );
          } */
       /*  if(data.elem.checked==true){
        $.post(
            "http://stuapi.ysdjypt.com/api/LockUser"
            , {
              un: data.LoginName
              , token: '67b159fe-7cb1-4b60-b9c6-e042ed878496'
            }, function (res) {
              if (res) {
                layer.msg("操作成功");
              } else {
                layer.msg("操作失败");
              }
            }, 'json'
          )}else{
            $.post(
                "http://stuapi.ysdjypt.com/api/UnLockUser"
                , {
                  un: data.LoginName
                  , token: '67b159fe-7cb1-4b60-b9c6-e042ed878496'
                }, function (res) {
                  if (res) {
                    layer.msg("操作成功");
                  } else {
                    layer("操作失败");
                  }
                }, 'json'
              )
          } */
          console.log(data.elem.checked);
        });
    
    //监听工具条
    table.on('tool(LAY-user-manage)', function(obj) {
        var data = obj.data;
        var id = data.id;
        
        if (obj.event === 'del') {
            layer.prompt({
                formType: 1,
                title: '敏感操作，请验证口令'
            }, function(value, index) {
                layer.close(index);
                $.ajax({
                    url:"/users/" + id
                    ,type:"delete"
                    ,async:false
                    ,data:{data:id}
                    ,success: function (res) {
                      layer.msg("操作成功");
                      admin.events.refresh();
                    }
                  });
              /*   $.post(
                    "/users/del"
                    ,{
                      id:data.Id
                      //,token:'67b159fe-7cb1-4b60-b9c6-e042ed878496'
                    }
                    ,function(res){
                      if(res){
                        layer.msg("删除成功");
                      }else{
                        layer.msg("删除失败")
                      }
                    }
                  ) */
                layer.confirm('真的删除行么', function(index) {
                    obj.del();
                    layer.close(index);
                });
            });
        } else if (obj.event === 'edit') {
            admin.popup({
                title: '编辑用户',
                area: ['500px', '450px'],
                id: 'LAY-popup-user-add',
                success: function(layero, index) {
                    view(this.id).render('user/user/userform', data).done(function() {
                        form.render(null, 'layuiadmin-form-useradmin');

                        //回显数据
                        form.val("layuiadmin-form-useradmin", data);
                        //监听提交
                        form.on('submit(LAY-user-front-submit)', function(data) {
                            var field = data.field; //获取提交的字段

                            $.ajax({
                                url:"/users/addUser"
                                ,type:"post"
                                ,async:false
                                 ,data:JSON.stringify(field)
                                ,contentType:'application/json'
                                ,dateType:'json'
                                /* ,data:{
                                    'id':$('#id').val(),
                                    'protectMtel':$('#protectMtel').val(),
                                    'proTectEmail':$('#proTectEmail').val(),
                                    'loginName':$('#loginName').val(),
                                    'passWord':$('#passWord').val()} */
                                    //token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                                    
                                ,success: function (res) {
                                    layer.msg("操作成功");
                                    admin.events.refresh();
                                  }
                            })
                            //提交 Ajax 成功后，关闭当前弹层并重载表格
                            //$.ajax({});
                            layui.table.reload('LAY-user-manage'); //重载表格
                            layer.close(index); //执行关闭 
                        });
                    });
                }
            });
        }else if (obj.event === 'userroles') {
            admin.popup({
                title: '给用户设置角色',
                area: ['600px', '450px'],
                id: 'LAY-popup-user-add',
                success: function(layero, index) {
                    view(this.id).render('user/user/useronrose', data).done(function() {
                        /* form.render(null, 'layuiadmin-form-useradmin');

                        //回显数据
                        form.val("layuiadmin-form-useradmin", data); */
                        //监听提交
                        $.post("http://stuapi.ysdjypt.com/api/GetRolesByUserIdLayUI",{
                            uId:data.Id,
                            token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                        },function(res){
                            //console.log(res.data);
                            var valueArr = new Array();//右侧列表数据
                            //遍历循环
                            for(var i = 0;i<res.data.length;i++){//往数组中添加数据
                                console.log(res.data[i].Id);
                                valueArr.push(res.data[i].Id);
                            }
                            $.post("http://stuapi.ysdjypt.com/api/GetRolesAll",{
                                token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                            },function(res){
                                   // console.log(valueArr);
                                   //渲染
                                    transfer.render({
                                        elem: '#test1'  //绑定元素
                                        ,title:["系统角色","用户角色"]
                                        ,data: res
                                        ,value:valueArr
                                        ,id: 'demo1' //定义索引
                                        ,parseData: function(res){
                                            return {
                                              "value": res.Id //数据值
                                              ,"title": res.Name //数据标题
                                              ,"disabled": res.disabled  //是否禁用
                                              ,"checked": res.checked //是否选中
                                            }
                                          },onchange: function(data, index){
                                            console.log(data); //得到当前被穿梭的数据
                                            console.log(index); //如果数据来自左边，index 为 0，否则为 1
                                            if(index==0){
                                            for(var i = 0; i < data.length; i++){
                                            $.post("http://stuapi.ysdjypt.com/api/AddUserToRole",{
                                                uId:transId,
                                                rId:data[i].value,
                                                token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                                            },function(res){                                              
                                                    layer.msg("成功分配角色");                                                
                                            },'json')}
                                        }else{
                                            for(var i = 0; i < data.length; i++){
                                                $.post("http://stuapi.ysdjypt.com/api/RemoveUserFromRole",{
                                                    uId:transId,
                                                    rId:data[i].value,
                                                    token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                                                },function(res){
                                                    layer.msg("撤销角色成功")
                                                },'json')
                                            }
                                            }
                                          }                                        
                                    })
                            },'json')

                        },'json');
                      
                    });
                }
            });
        }
    });

    //管理员管理
    table.render({
        elem: '#LAY-user-back-manage',
        url: './json/useradmin/mangadmin.js' //模拟接口
            ,
        cols: [
            [
                { type: 'checkbox', fixed: 'left' }, { field: 'id', width: 80, title: 'ID', sort: true }, { field: 'loginname', title: '登录名' }, { field: 'telphone', title: '手机' }, { field: 'email', title: '邮箱' }, { field: 'role', title: '角色' }, { field: 'jointime', title: '加入时间', sort: true }, { field: 'check', title: '审核状态', templet: '#buttonTpl', minWidth: 80, align: 'center' }, { title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin' }
            ]
        ],
        text: '对不起，加载出现异常！'
    });

    //监听工具条
    table.on('tool(LAY-user-back-manage)', function(obj) {
        var data = obj.data;
        if (obj.event === 'del') {
            layer.prompt({
                formType: 1,
                title: '敏感操作，请验证口令'
            }, function(value, index) {
                layer.close(index);
                layer.confirm('确定删除此管理员？', function(index) {
                    console.log(obj)
                    obj.del();
                    layer.close(index);
                });
            });
        } else if (obj.event === 'edit') {
            admin.popup({
                title: '编辑管理员',
                area: ['420px', '450px'],
                id: 'LAY-popup-user-add',
                success: function(layero, index) {
                    view(this.id).render('user/administrators/adminform', data).done(function() {
                        form.render(null, 'layuiadmin-form-admin');

                        //监听提交
                        form.on('submit(LAY-user-back-submit)', function(data) {
                            var field = data.field; //获取提交的字段

                            
                            //提交 Ajax 成功后，关闭当前弹层并重载表格
                            //$.ajax({});
                            layui.table.reload('LAY-user-back-manage'); //重载表格
                            layer.close(index); //执行关闭 
                        });
                    });
                }
            });
        }
    });

    //角色管理
    table.render({
        elem: '#LAY-user-back-role',
        url: '/role/findAll' //模拟接口
        ,method:"Get"
      /*   ,where:{token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"} */    ,
        cols: [
            [
                { type: 'checkbox', fixed: 'left' },
                { field: 'id', width: 80, title: '角色编号'}, 
                { field: 'name', title: '角色名称' },
                { title: '操作', width: 250, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin' }
            ]
        ],
        text: '对不起，加载出现异常！'
    });

    //监听工具条
    table.on('tool(LAY-user-back-role)', function(obj) {
        var data = obj.data;
        var id = data.id;
        var tree = layui.tree;
        if (obj.event === 'del') {
            layer.confirm('确定删除此角色？', function(index) {
                $.ajax({
                    url:"/role/" + id
                    ,type:"delete"
                    ,async:false
                    ,data:{data:id}
                    ,success: function (res) {
                      layer.msg("操作成功");
                      admin.events.refresh();
                    }
                  });
              /*   $.post("http://stuapi.ysdjypt.com/api/DeleteRole",
                {
                    roleId:data.Id,
                    token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                },function(res){
                    if(res>1){
                        layer.msg("删除成功");
                    }else{
                        layer.msg("删除失败");
                    }
                }) */
                obj.del();
                layer.close(index);
            });
        } else if (obj.event === 'edit') {
            admin.popup({
                title: '编辑新角色',
                area: ['500px', '480px'],
                id: 'LAY-popup-user-add',
                success: function(layero, index) {
                    view(this.id).render('user/administrators/roleform', data).done(function() {
                        form.render(null, 'layuiadmin-form-role');

                         //回显数据
                         form.val("layuiadmin-form-role", data);
                        
                        //监听提交
                       form.on('submit(LAY-user-role-submit)', function(data) {
                            var field = data.field; //获取提交的字段
                            $.ajax({
                                url:"/role/addOredit"
                                ,type:"post"
                                ,async:false
                                 ,data:JSON.stringify(field)
                                ,contentType:'application/json'
                                ,dateType:'json'                              
                                ,success: function (res) {
                                    layer.msg("操作成功");
                                    admin.events.refresh();
                                  }
                            });
                            /*  $.post("http://stuapi.ysdjypt.com/api/UpdateRole",{
                                name:$('#name').val(),
                                roleId:$('#Id').val(),
                                token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                            },function(res){
                                if(res=1){
                                   layer.msg("修改成功");
                                }
                            },'json') */
                            //提交 Ajax 成功后，关闭当前弹层并重载表格
                            //$.ajax({});
                            layui.table.reload('LAY-user-back-role'); //重载表格
                            layer.close(index); //执行关闭 
                        });
                    });
                }
            });
        }else if (obj.event === 'tree') {
            admin.popup({
                title: '设置权限',
                area: ['500px', '480px'],
                id: 'LAY-popup-user-add',
                success: function(layero, index) {
                    view(this.id).render('user/administrators/roleTree', data).done(function() {
                        $.post("http://stuapi.ysdjypt.com/api/GetModulesByRoleIdLayUI",{
                            roleId:data.Id,
                            token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                        },function(res){
                            var inst1 = tree.render({
                                elem: '#test1'  //绑定元素
                                ,showCheckbox:true//开启复选框
                                ,edit: ['add', 'update', 'del']
                                , id: 'demoId' //定义索引
                                ,data: res/* [{
                                title: '江西' //一级菜单
                                ,children: [{
                                    title: '南昌' //二级菜单
                                    ,children: [{
                                    title: '高新区' //三级菜单
                                    //…… //以此类推，可无限层级
                                    }]
                                }]
                                },{
                                title: '陕西' //一级菜单
                                ,children: [{
                                    title: '西安' //二级菜单
                                }]
                                }] */
                                ,operate: function(obj){
                                    var type = obj.type; //得到操作类型：add、edit、del
                                    var data = obj.data; //得到当前节点的数据
                                    var elem = obj.elem; //得到当前节点元素
                                    
                                    //Ajax 操作
                                    var id = data.id; //得到节点索引
                                    if(type === 'add'){ //增加节点
                                        console.log(data.id);
                                        $.post("http://stuapi.ysdjypt.com/api/CreateModule",{
                                            name:data.title,
                                            parentId:data.id,
                                            path:data.href,
                                            weight:'99',
                                            token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                                        },function(res){

                                        },'json');
                                        //返回 key 值
                                        return 123;
                                    } else if(type === 'update'){ //修改节点
                                        $.post("http://stuapi.ysdjypt.com/api/UpdateModule",{
                                            mId:data.id,
                                            name:data.title,
                                            parentId:data.id,
                                            path:data.href,
                                            weight:"100",
                                            token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                                        },function(res){

                                            console.log(data.id);
                                        },'json');
                                        console.log(elem.find('.layui-tree-txt').html()); //得到修改后的内容
                                    } else if(type === 'del'){ //删除节点
                                        $.post("http://stuapi.ysdjypt.com/api/DeleteModule",{
                                            mId:data.id,
                                            token:"67b159fe-7cb1-4b60-b9c6-e042ed878496"
                                        },function(res){
                                            console.log(data.href);
                                            console.log(data.weight);
                                            layer.msg("删除成功");
                                        },'json')
                                      
                                    };
                                  }
                            });
                        },'json')
                       
                        $("#btn").on('click', function () {
                            //获得选中的节点
                            var checkData = tree.getChecked('demoId');
                            console.log(checkData);
                        });
                        //form.render(null, 'layuiadmin-form-roleTree');
                        //监听提交
                       /*  form.on('submit(LAY-user-role-submit)', function(data) {
                            var field = data.field; //获取提交的字段         
                            //渲染
                            var inst1 = tree.render({
                                elem: '#test1'  //绑定元素
                                ,data: [{
                                title: '江西' //一级菜单
                                ,children: [{
                                    title: '南昌' //二级菜单
                                    ,children: [{
                                    title: '高新区' //三级菜单
                                    //…… //以此类推，可无限层级
                                    }]
                                }]
                                },{
                                title: '陕西' //一级菜单
                                ,children: [{
                                    title: '西安' //二级菜单
                                }]
                                }]
                            });

                          
                            //提交 Ajax 成功后，关闭当前弹层并重载表格
                            //$.ajax({});
                            layui.table.reload('LAY-user-back-role'); //重载表格
                            layer.close(index); //执行关闭 
                        }); */
                    });
                }
            });
        }
    });

    exports('useradmin', {})
});